package com.ruoyi.channel.service;


import com.ruoyi.channel.domain.MpChannel;
import com.ruoyi.channel.domain.MpChannelMethod;
import com.ruoyi.common.core.domain.AjaxResult;

import java.math.BigDecimal;
import java.util.List;

/**
 *  服务层
 * 
 * @author ruoyi
 * @date 2019-05-06
 */
public interface IMpChannelMethodService 
{
	/**
     * 查询信息
     * 
     * @param id ID
     * @return 信息
     */
	public MpChannelMethod selectMpChannelMethodById(Long id);
	
	/**
     * 查询列表
     * 
     * @param mpChannelMethod 信息
     * @return 集合
     */
	public List<MpChannelMethod> selectMpChannelMethodList(MpChannelMethod mpChannelMethod);
	
	/**
     * 新增
     * 
     * @param mpChannelMethod 信息
     * @return 结果
     */
	public AjaxResult insertMpChannelMethod(MpChannelMethod mpChannelMethod,BigDecimal merchantPayRate);
	
	/**
     * 修改
     * 
     * @param mpChannelMethod 信息
     * @return 结果
     */
	public AjaxResult updateMpChannelMethod(MpChannelMethod mpChannelMethod,Long oldPayKindId, Long oldWalletKindId);
		
	/**
     * 删除信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteMpChannelMethodByIds(String ids);


	/**
	 * 渠道支付方法状态修改
	 * @param mpChannelMethod	渠道支付方法
	 * @return			结果
	 */
	int changeStatus(MpChannelMethod mpChannelMethod);


	/**
	 * 校验渠道支付方法的钱包类型
	 * @param id
	 * @param channelId
	 * @param walletKindId
	 * @return
	 */
	String checkWalletKindIdUnique(Long id, Long channelId, Long walletKindId);

	/**
	 * 拿到最大支付费率
	 */
    BigDecimal maxPayRate();


	/**
	 * 根据渠道id 拿到最大支付费率
	 * @param channelId
	 * @return
	 */
	BigDecimal maxPayRateByChannelId(int channelId);
}
